package com.zeng.generate.code.other;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import lombok.Data;
import lombok.ToString;

import java.nio.charset.Charset;

@Data
@ToString
public class CCSDialogue {

    byte[] startText;
    byte[] tid;
    byte[] tnr;
    byte[] laneId;
    byte[] lpn;
    byte[] vid;
    byte[] cmd;
    byte[] epan;
    byte[] barrierStatus;
    byte[] ticketType;
    byte[] sysDate;
    byte[] sysTime;
    byte[] correctMode;
    byte[] reserved;
    byte[] blockCheck;
    byte[] endText;

    protected int index = 0;

    public CCSDialogue(byte[] bytes) {
        this.startText = setByte(bytes, 1);
        this.tid = setByte(bytes, 1);
        this.tnr = setByte(bytes, 2);
        this.laneId = setByte(bytes, 2);
        this.lpn = setByte(bytes, 24);
        this.vid = setByte(bytes, 8);
        this.cmd = setByte(bytes, 4);
        this.epan = setByte(bytes, 32);
        this.barrierStatus = setByte(bytes, 4);
        this.ticketType = setByte(bytes, 4);
        this.sysDate = setByte(bytes, 8);
        this.sysTime = setByte(bytes, 6);
        this.correctMode = setByte(bytes, 1);
        this.reserved = setByte(bytes, 30);
        this.blockCheck = setByte(bytes, 3);
        this.endText = setByte(bytes, 1);
        System.out.println("ccs dialogue index = " + index);
    }

    /**
     * 設置指定長度byte數組
     * @param bytes
     * @param size
     * @return
     */
    protected byte[] setByte(byte[] bytes, int size) {
        byte[] be = new byte[size];
        for (int i = index, j = 0; i < index + size; i++, j++) {
            be[j] = bytes[i];
        }
        this.index = index + size;
        return be;
    }
}
